package com.axon.brasil.formatters
{
	import mx.formatters.Formatter;
	import mx.utils.StringUtil;
	
	public class CpfFormatter extends Formatter
	{
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function CpfFormatter()
		{
			super();
		}
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		override public function format(value: Object): String
		{
			if (error)
				error = null;
				
			var strBruto: String = value as String;
			var result  : String = "";
			var size    : Number;
			var cursor  : Number = 0;
			
			strBruto = StringUtil.trim(strBruto);
			strBruto = strBruto.replace("-","");

			while (strBruto.indexOf(".") != -1) {
				strBruto = strBruto.replace(".","");
			}
			
			size = strBruto.length;
			
			for (var i: Number = (size - 1); i >= 0; i--) {
				cursor++;
				if (cursor == 3) {
					result = "-" + result;
				} else if ((cursor == 6) || (cursor == 9)) {
					result = "." + result;
				}
				result = strBruto.charAt(i) + result;
			}
			return result;
		}

	}
}